package day3.HomeWork;

/**
 * ClassName：Test5
 *
 * @Author：小鱼
 * @Create：2025-08-20 19:37
 */
public class Test5 {
    /*
    5.编写程序，实现以下要求：
       1. 定义子线程1，线程处理函数中输出 1-50，每隔5ms输出一次
       2. 定义子线程2，线程处理函数中输出 A-Z，每隔10ms输出一次
       3. 要求，当线程1输出30之后，线程2插队进来优先输出，全部输出后，线程1再输出31-50。
    */
    public static void main(String[] args) {
        //定义子线程2，线程处理函数中输出 A-Z，每隔10ms输出一次
        Thread t2 = new Thread(){
            @Override
            public void run(){
                for (char i = 'A'; i <= 'Z'; i++) {
                    try {
                        Thread.sleep(10);
                    } catch (InterruptedException e) {
                        e.printStackTrace();
                    }
                    System.out.println("t2: "+i);
                }
            }
        };
        //定义子线程1，线程处理函数中输出 1-50，每隔5ms输出一次
        Thread t1 = new Thread(){
            @Override
            public void run(){
                for (int i = 1; i < 51; i++) {
                    try {
                        Thread.sleep(5);
                    } catch (InterruptedException e) {
                        e.printStackTrace();
                    }
                    System.out.println("t1: "+i);
                    if(i==30){
                        try {
                            t2.join();
                        } catch (InterruptedException e) {
                            e.printStackTrace();
                        }
                    }
                }
            }
        };
        t1.start();
        t2.start();
    }
}
